Conventional error mitigation strategies utilize fixed memory scrub frequencies that are set according to the expected rate of error events. These conventional strategies ignore the realities that the actual error event rate of a memory will vary over time. Some devices are located in environments where error event rates vary over time. For example, when a digital circuit is moved to different locations, its error event rate may change due to the variation of radiation between locations. By way of illustration, digital circuits deployed in space may experience varied amounts of radiation over time due, for example, to solar flares. Solar flare frequency generally varies over an eleven year cycle with radiation often spiking during a short interval of that cycle. Thus, conventional error mitigation strategies may employ a very high fixed memory scrub frequency in order to account for expected spikes in the error event rate during short intervals. This results in excessive use of processor cycles for memory scrubs during long periods of low error event rates.
A memory error event may occur when digital circuits are exposed to radiation in the form of high energy particles including energetic electrons and protons. Strategies to mitigate these error events may be used when deploying digital circuits into radiation prone environments including, for example, medical offices, battlefields, nuclear facilities, earth orbit, beyond earth orbit, other radiation intensive environments, and so on. Additionally, as digital circuits become smaller and more densely packed, error events become more common even in less radiation prone environments. These error events may occur without radiation due, for example, to power fluctuations. Applications that are mathematically intensive may be less resistant to occasional errors in the memory, thus these applications may desire perfect memory accuracy.
One typical mitigation strategy deployed in digital circuits includes periodically scrubbing the memory by activating the error corrective code (ECC) system in the memory. Errors may also be identified and corrected by memory scrub logics.